package ae.pcfc.cldos.online.common.clddb.domain;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
import org.hibernate.envers.Audited;

import ae.pcfc.cldos.online.common.domain.BaseEntity;


/**
 * The persistent class for the T_CLDOS_PERSONAL_DETAILS database table.
 * 
 */
@Entity
@Table(name="T_CLDOS_VISIT_VISA")
@Audited
public class VisitVisa extends BaseEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(generator="SQ_CLDOS_APP_ID")
	@GenericGenerator(name = "SQ_CLDOS_APP_ID",  strategy="foreign", parameters=@Parameter(name="property", value="AppMetaData"))
	@Column(name="APPLICATION_ID")
	private Long applicationId;
	
	@Column(name="VV_MONTH")
	private String vvMonth;
	
	@Column(name="VV_PRIORITY")
	private String vvPriority;

	@Temporal(TemporalType.DATE)
	@Column(name="VV_LAST_ENTRY_DATE")
	private Date vvLastEntryDate;
	
	@Column(name="VV_LAST_ENTRY_PORT")
	private String vvLatEntryPort;
	
	@Column(name="VV_CANCEL_METHOD")
	private String vvCancelMathod;
	
	//bi-directional many-to-one association to AppMetaData
	@OneToOne(fetch=FetchType.LAZY, cascade=CascadeType.ALL, optional=true)
	@PrimaryKeyJoinColumn
	private AppMetaData AppMetaData;

	public String getVvMonth() {
		return vvMonth;
	}

	public void setVvMonth(String vvMonth) {
		this.vvMonth = vvMonth;
	}

	public String getVvPriority() {
		return vvPriority;
	}

	public void setVvPriority(String vvPriority) {
		this.vvPriority = vvPriority;
	}

	public Date getVvLastEntryDate() {
		return vvLastEntryDate;
	}

	public void setVvLastEntryDate(Date vvLastEntryDate) {
		this.vvLastEntryDate = vvLastEntryDate;
	}

	public String getVvLatEntryPort() {
		return vvLatEntryPort;
	}

	public void setVvLatEntryPort(String vvLatEntryPort) {
		this.vvLatEntryPort = vvLatEntryPort;
	}

	public String getVvCancelMathod() {
		return vvCancelMathod;
	}

	public void setVvCancelMathod(String vvCancelMathod) {
		this.vvCancelMathod = vvCancelMathod;
	}

	public AppMetaData getAppMetaData() {
		return AppMetaData;
	}

	public void setAppMetaData(AppMetaData appMetaData) {
		AppMetaData = appMetaData;
	}

	public Long getApplicationId() {
		return applicationId;
	}

	public void setApplicationId(Long applicationId) {
		this.applicationId = applicationId;
	}
	
}